package org.song.service.impl;

import org.song.mapper.TagMapper;
import org.song.model.dto.TagDto;
import org.song.model.vo.Tag;
import org.song.service.TagService;
import org.song.service.impl.common.AbstractBaseServiceImpl;
import org.song.util.SnowflakeUtil;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.lang.NonNull;
import org.springframework.stereotype.Service;

import java.util.List;

@Service
public class TagServiceImpl extends AbstractBaseServiceImpl implements TagService {

    @Autowired( required = true )
    @Qualifier( value = "tagMapper")
    private TagMapper tagMapper;

    @Override
    public List<Tag> listTags( @NonNull TagDto tagDto) {
        return tagMapper.listTags(tagDto);
    }


    @Override
    public int deleteTag( @NonNull Tag tag) {
        return tagMapper.deleteTag(tag);
    }

    @Override
    public int insertTag( @NonNull Tag tag) {
        tag.setId( SnowflakeUtil.getNextLongId() );
        return tagMapper.insertTag(tag);
    }

    @Override
    public int updateTag( @NonNull Tag tag) {
        return tagMapper.updateTag(tag);
    }

}
